package cn.fl.spl.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.spl.vo.SplRenewProtocolRecVO;
import fl.spl.facade.spl.dto.SplRenewProtocolRecDTO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 供应商续签协议记录 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的VO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO, 向上是PO转DTO
 */
public class SplRenewProtocolRecVOTransform {

    /**
     * VO 转  DTO
     *
     * @param vo SplRenewProtocolRecVO
     * @return SplRenewProtocolRecDTO
     */
    public static SplRenewProtocolRecDTO toDTO(SplRenewProtocolRecVO vo) {
        SplRenewProtocolRecDTO dto = null;
        if (vo != null) {
            dto = new SplRenewProtocolRecDTO();
            dto.setId(vo.getId());
            dto.setSplId(vo.getSplId());//供应商ID
            dto.setSplNm(vo.getSplNm());//供应商名称
            dto.setProtocolStartTm(vo.getProtocolStartTm());//协议开始时间
            dto.setProtocolEndTm(vo.getProtocolEndTm());//协议终止时间
            dto.setRenewStsCd(vo.getRenewStsCd());//续签状态(SPL0035，未续签："0"；续签中:"1"；已续签: "2"；续签不通过:"3")
            dto.setEffectiveTm(vo.getEffectiveTm());//协议生效(是否有效)时间
            dto.setAudStsCd(vo.getAudStsCd());//协议审核状态
            dto.setReAssignTm(vo.getReAssignTm());//协议续签(审核通过)时间
            dto.setIsValid(vo.getIsValid());//是否有效(SPL0036，有效："1"；无效："0")
            dto.setIsDel(vo.getIsDel());//是否删除
            dto.setIsNew(vo.getIsNew());//是否最新
            dto.setRenewId(vo.getRenewId());//续签协议ID
            dto.setProtocolSource(vo.getProtocolSource());//续签协议来源

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            dto.setIsRemind(vo.getIsRemind());
        }
        return dto;
    }

    /**
     * DTO 转  VO
     *
     * @param dto SplRenewProtocolRecDTO
     * @return SplRenewProtocolRecVO
     */
    public static SplRenewProtocolRecVO toVO(SplRenewProtocolRecDTO dto) {
        SplRenewProtocolRecVO vo = null;
        if (dto != null) {
            vo = new SplRenewProtocolRecVO();
            vo.setId(dto.getId());
            vo.setSplId(dto.getSplId());//供应商ID
            vo.setSplNm(dto.getSplNm());//供应商名称
            vo.setProtocolStartTm(dto.getProtocolStartTm());//协议开始时间
            vo.setProtocolEndTm(dto.getProtocolEndTm());//协议终止时间
            vo.setRenewStsCd(dto.getRenewStsCd());//续签状态(SPL0035，未续签："0"；续签中:"1"；已续签: "2"；续签不通过:"3")
            vo.setEffectiveTm(dto.getEffectiveTm());//协议生效(是否有效)时间
            vo.setAudStsCd(dto.getAudStsCd());//协议审核状态
            vo.setReAssignTm(dto.getReAssignTm());//协议续签(审核通过)时间
            vo.setIsValid(dto.getIsValid());//是否有效(SPL0036，有效："1"；无效："0")
            vo.setIsDel(dto.getIsDel());//是否删除
            vo.setIsNew(dto.getIsNew());//是否最新
            vo.setRenewId(dto.getRenewId());//续签协议ID
            vo.setProtocolSource(dto.getProtocolSource());//续签协议来源

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
            vo.setIsRemind(dto.getIsRemind());
        }
        return vo;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<SplRenewProtocolRecVO>
     * @return List<SplRenewProtocolRecDTO>
     */
    public static List<SplRenewProtocolRecDTO> toDTOList(List<SplRenewProtocolRecVO> list) {
        List<SplRenewProtocolRecDTO> dtoList = new ArrayList<SplRenewProtocolRecDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (SplRenewProtocolRecVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<SplRenewProtocolRecDTO>
     * @return List<SplRenewProtocolRecVO>
     */
    public static List<SplRenewProtocolRecVO> toVOList(List<SplRenewProtocolRecDTO> list) {
        List<SplRenewProtocolRecVO> voList = new ArrayList<SplRenewProtocolRecVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (SplRenewProtocolRecDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }
}
